27C - Unordered Subsequence - CodeForces Solution


constructive algorithms greedy *1900

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
#define lli long long int
#define ii pair<lli,lli>
#define fi first
#define se second
using namespace std;
struct seg
{
	lli val,l,r;
};
int main ()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    int n; cin>>n;
    lli a[n+1];/////
    for (int i=1;i<=n;i++) cin>>a[i];/////////
    vector<seg>abc;//gadsgsad
    int cur=1;
    for (int i=2;i<=n;i++)
    {
    	if (a[i]!=a[i-1]) abc.push_back((seg){a[i-1],cur,i}), cur=i;
	}
	abc.push_back((seg){a[n],cur,n});
	if (abc.size()<3) return cout<<0,0;
	else for (int i=1;i<abc.size()-1;i++)
	{
		if (abc[i-1].val>abc[i].val && abc[i+1].val>abc[i].val)
		{
			return cout<<"3\n"<<abc[i-1].l<<" "<<abc[i].l<<" "<<abc[i+1].l,0;
		}
		else if (abc[i-1].val<abc[i].val && abc[i+1].val<abc[i].val)
		{
			return cout<<"3\n"<<abc[i-1].l<<" "<<abc[i].l<<" "<<abc[i+1].l,0;
		}
	}
	cout<<0;
}


Comments

Submit
0 Comments
More Questions

1647A - Madoka and Math Dad
710A - King Moves
1131A - Sea Battle
118A - String Task
236A - Boy or Girl
271A - Beautiful Year
520B - Two Buttons
231A - Team
479C - Exams
1030A - In Search of an Easy Problem
158A - Next Round
71A - Way Too Long Words
160A - Twins
1A - Theatre Square
1614B - Divan and a New Project
791A - Bear and Big Brother
1452A - Robot Program
344A - Magnets
96A - Football
702B - Powers of Two
1036A - Function Height
443A - Anton and Letters
1478B - Nezzar and Lucky Number
228A - Is your horseshoe on the other hoof
122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality
1650C - Weight of the System of Nested Segments
1097A - Gennady and a Card Game